<template>
	<view>
		<u--form labelWidth="100px" class="u-form" labelPosition="left" >
			
			<u-form-item :label="item.name" borderBottom v-if="item.readable" v-for="(item,i) in formData" :key="i">
			<!-- 	<view class="title">
					<text class="red-color " v-if="item.options.required">* </text> {{item.name}}
				</view> -->
				<template v-if="item.type=='input'">				
					<!-- 普通输入框 -->
					 <u--input :placeholder='item.placeholder'  :disabled="!item.writable"  v-model="item.value" border="none"></u--input>
				</template>	
				<template v-if="item.type=='textarea' || item.type=='editor'">
					<!-- 多行文本输入框 -->
					<u--textarea :placeholder='item.placeholder' :disabled="!item.writable"   v-model="item.value" border="none"></u--textarea>
				</template>	
				<template v-if="item.type=='number'">
					<!-- 计数器 -->
					<u-number-box :placeholder='item.placeholder' :disabled="!item.writable"   v-model="item.value"></u-number-box>
				</template>	
				<template v-if="item.type=='radio'">
					<!-- 单选框 -->
				<u-radio-group
					v-if="item.options.remote === 3" 
				    v-model="item.value"
					:disabled="!item.writable"
				    placement="column"
				  >
				    <u-radio
				      :customStyle="{margin: '8px'}"
				      v-for="(option, index) in $dictUtils.getDictList(item.options.dictType)"
				      :key="index"
				      :label="option.label"
				      :name="option.value"
				    >
				    </u-radio>
				  </u-radio-group>
				  <u-radio-group
				  	 v-else-if="item.options.showLabel"
				     v-model="item.value"
				  	 :disabled="!item.writable"
				     placement="column"
				    >
				      <u-radio
				        :customStyle="{margin:'8px'}"
				        v-for="(option, index) in item.options.options"
				        :key="index"
				        :label="option.label"
				        :name="option.value"
				      >
				      </u-radio>
				    </u-radio-group>
					<u-radio-group
					   v-else
					   v-model="item.value"
					   :disabled="!item.writable"
					   placement="column"
					  >
					    <u-radio
					      :customStyle="{margin:'8px'}"
					      v-for="(option, index) in item.options.options"
					      :key="index"
					      :label="option.value"
					      :name="option.value"
					    >
					    </u-radio>
					  </u-radio-group>
				</template>	
				<template v-if="item.type=='checkbox'">
					 <u-checkbox-group
								v-if="item.options.remote === 3"
					            v-model="item.value"
					            :disabled="!item.writable"
					            placement="column"
					        >
						<u-checkbox
							:customStyle="{margin: '8px'}"
							v-for="(option, index) in $dictUtils.getDictList(item.options.dictType)"
							:key="index"
							:label="option.label || option.value"
							:name="option.value"
						>
						</u-checkbox>
					</u-checkbox-group>
					<u-checkbox-group
								v-else-if="item.options.showLabel"
					            v-model="item.value"
					            :disabled="!item.writable"
					            placement="column"
					        >
						<u-checkbox
							:customStyle="{margin: '8px'}"
							v-for="(option, index) in item.options.options"
							:key="index"
							:label="option.label"
							:name="option.value"
						>
						</u-checkbox>
					</u-checkbox-group>
					<u-checkbox-group
								v-else
					            v-model="item.value"
					            :disabled="!item.writable"
					            placement="column"
					        >
						<u-checkbox
							:customStyle="{margin: '8px'}"
							v-for="(option, index) in item.options.options"
							:key="index"
							:label="option.value"
							:name="option.value"
						>
						</u-checkbox>
					</u-checkbox-group>
				</template>	
				<template v-if="item.type=='time'">
					<!-- 时间控件 -->
					<jp-datetime-picker  v-model="item.value" :placeholder='item.placeholder' :disabled="!item.writable" mode="time"></jp-datetime-picker>
				</template>	
				<template v-if="item.type=='date'">
					<!-- 日期控件 -->
					<jp-datetime-picker  v-model="item.value" :placeholder='item.placeholder' :disabled="!item.writable" mode="date"></jp-datetime-picker>
				</template>	
				<template v-if="item.type=='rate'">
					<!-- 评分 -->
					<u-rate :disabled="!item.writable" :count="item.options.max" v-model="item.value"></u-rate>
				</template>	
				<template v-if="item.type=='color'">
					<!-- 颜色选择框 -->
					<jp-color-picker :disabled="!item.writable" v-model="item.value" ></jp-color-picker>
				</template>	
				<template v-if="item.type=='select'">
					<!-- 选择框 -->
					<jp-picker :disabled="!item.writable" v-if="item.options.remote === 3" v-model="item.value" :range="$dictUtils.getDictList(item.options.dictType)">
					</jp-picker>
					<jp-picker :disabled="!item.writable" v-else-if="item.options.showLabel" v-model="item.value" :range="item.options.options">
					</jp-picker>
					<jp-picker :disabled="!item.writable" v-else v-model="item.value" rangeKey="value" :range="item.options.options">
					</jp-picker>
				</template>	
				<template v-if="item.type=='switch'">
					<!-- 开关 -->
					<u-switch :placeholder="item.placeholder" :disabled="!item.writable"   v-model="item.value"></u-switch>
				</template>	
				<template v-if="item.type=='cascader'">
					<!-- 开关 -->
					<uni-data-picker :localdata="item.options.options" v-model="item.value" :map="{text:'label', value: 'value'}" :popup-title="item.placeholder" ></uni-data-picker>
				</template>	
				<template v-if="item.type=='slider'">
					<!-- 滑块 -->
					<u-slider :placeholder='item.placeholder' :disabled="!item.writable" step="20" min="30" max="100"   v-model="item.value"></u-slider>
				</template>	
				<template v-if="item.type=='text'">
					<!-- 普通输入框 -->
					<text>{{item.value}}</text>
				</template>	
				<template v-if="item.type=='html'">
					<!-- 普通输入框 -->
					<view v-html="item.value"></view>
				</template>	
				<!--步骤条-->
				<template v-if="item.type == 'steps'">
					<u-steps :current="item.value">
						<u-steps-item v-for="(item, index) in item.options.steps" :title="item.title"></u-steps-item>
					</u-steps>
				</template>
				<template v-if="item.type=='imgupload' || item.type=='fileupload'">
					<!-- 图片上传 -->
					<jp-form-upload :disabled="!item.writable"   v-model="item.value"></jp-form-upload>
				</template>	
				<template v-if="item.type=='user'">
					<!-- 用户选择框 -->
					<user-select :placeholder='item.placeholder' :disabled="!item.writable"   v-model="item.value"></user-select>
				</template>	
				<template v-if="item.type=='office'">
					<!-- 机构选择框 -->
					<jp-office-select :placeholder='item.placeholder' :disabled="!item.writable"   v-model="item.value"></jp-office-select>
				</template>	
				<template v-if="item.type=='area'">
					<!-- 普通输入框 -->
					<jp-area-select  :disabled="!item.writable"  v-model="item.value"></jp-area-select>
				</template>	
				<template v-if="item.type=='dict'">
					<!-- 字典 -->
					<jp-picker :disabled="!item.writable"  v-model="item.value" :range="$dictUtils.getDictList(item.options.dictType)"></jp-picker>
				</template>	
			</u-form-item>							
		</u--form>
	</view>
</template>

<script>
	import userSelect from '@/pages/subA/components/user-select/user-select.vue';
	import jpPicker from '@/pages/subA/components/jp-picker/jp-picker.vue';
	
	export default {
		components: {
			userSelect,
			jpPicker
		},
		watch:{
			formData:{
				handler (val) {
					console.log(this.formData)
				},
				immediate: true,
				deep: false
			}
		},
		props: {
			formData:{
				type:Array,
				default:function(){
					return []
				}
			}
		},
		methods: {	

		}
	}
</script>

<style lang="scss">
.uni-list-cell {
    justify-content: flex-start
}
.cu-form-group{

    uni-checkbox-group{
		text-align: right;
	}
	uni-radio-group {
		text-align: right;
	}
	uni-checkbox, uni-radio {
	    position: relative;
	    margin-top: 7px;
		margin-left:7px;
		margin-bottom: 7px;
	}
}
</style>